/**
 * 根据白名单过滤数组中的对象
 * @param {Array} data - 原始数据数组
 * @param {Array} whitelist - 白名单键名数组
 * @returns {Array} - 过滤后的新数组
 */
export function filterByWhitelist(data, whitelist)
{
  if (!Array.isArray(data) || !Array.isArray(whitelist))
    throw new Error('参数 data 和 whitelist 必须为数组')
  return data.map(item =>
  {
    return whitelist.reduce((acc, key) =>
    {
      if (item[key])
        acc[key] = item[key]
      return acc
    }, {})
  })
}
